package com.st.demo.utils;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
import android.widget.ImageView;

import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.BitmapDescriptorFactory;

public class MapUtil {

    private View markerView;
    Bitmap bitmap = null;
    Bitmap mutableBitmap = null;

//    private BitmapDescriptor markerIcon(int markerStyle, String text, int textColor) {
//        ImageView imageView = markerView.findViewById(R.id.iconImageView);//imageView图片组件
//        BitmapDescriptor icon = null;//初始化BitmapDescriptor对象
//        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), markerStyle);//图片转bitmap位图
//        Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);//复制Bitmap对象
//        Canvas canvas = new Canvas(mutableBitmap); //创建Canvas对象
//        Paint paint = new Paint();//创建 Paint 对象，用于定义绘制样式，包括文本的颜色和大小
//        paint.setColor(textColor);//设置文字颜色
//        paint.setTextSize(getResources().getDimensionPixelSize(R.dimen.text_size));//设置文字大小
//        float x = 30; // 从左边缘开始的横坐标
//        float y = 55; // 从顶部开始的纵坐标
//        canvas.drawText(text, x, y, paint); //使用Canvas绘制文本
//        // 将修改后的 mutableBitmap 设置到 ImageView中
//        imageView.setImageBitmap(mutableBitmap);//将绘制好的Bitmap设置到imageView中
//        bitmap = createBitmapFromView(imageView);//imageView 转换为 Bitmap
//        icon = BitmapDescriptorFactory.fromBitmap(bitmap);// 最后将Bitmap 转换为 BitmapDescriptor
//        return icon;
//    }

    /**
     * View 转换为 Bitmap
     *
     * @param view
     * @return
     */
    private Bitmap createBitmapFromView(View view) {
        // 测量视图的大小，此时 view 的大小将被计算出来
        view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        // 将视图放置在 (0, 0) 到 (view.getMeasuredWidth(), view.getMeasuredHeight()) 的矩形内
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        // 创建一个空白的 Bitmap，大小与视图相同
        Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
        // 创建 Canvas 对象，用于在 Bitmap 上绘制图形
        Canvas canvas = new Canvas(bitmap);
        // 在 Canvas 上绘制视图内容
        view.draw(canvas);
        // 返回绘制好的 Bitmap
        return bitmap;
    }
}
